package list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class TestDemo {

    public static void main(String[] args) {
        MyArrayList<String> list = new MyArrayList<>();
        list.add("ab");
        list.add("cd");
        list.add("ef");
        list.add(0,"haha");
        System.out.println(list);
    }

    public static void main2(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("a");
        ArrayList<String> list2 = new ArrayList<>(10);
    }

    public static void main1(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("哈哈");
        list.add("太阳");
        list.add("❥(^_-)");
        list.add("你好");
        list.add("三团");
        System.out.println(list.size());
        list.get(2);

        // 迭代器
//        Iterator<String> iterator = list.iterator();
        // List相关的迭代器：是Iterator的子类，多了一些方法，例如 add()
//        ListIterator<String> stringListIterator = list.listIterator();
//        while (iterator.hasNext()) {
//            String next = iterator.next();
//            System.out.println(next);
//        }

        // 通过迭代器迭代删除元素
//        while (iterator.hasNext()) {
//            // 在删除的时候，要先使用next()方法迭代出集合中的元素
//            String s = iterator.next();
//            // 再调用remove()方法删除
//            iterator.remove();
//        }
//        System.out.println(list);

        List<String> subList = list.subList(1, 4);
        System.out.println(subList);
        subList.set(0,"橘猫食堂");
        // 在改了subList中的元素后，list中的也被改了，说明返回的是1到4的地址
        System.out.println(list);
        System.out.println(subList);
    }
}
